(function($){
	var NeiosCommon = function(){};
	// 获取码表
	/**
	 * @param {String} dictCode 查询的码表code 多个字典查询用","隔开 例：'a,b,c'
	 */
	NeiosCommon.prototype.queryDict = function(dictCode,callback){
		let param = {
			'dictCode' : dictCode
		}
		mui.neiosRequst.httpRequst('/app/common/getItemsByDictCodes', param,
			function(data) {
				if (data.code == '0') {
					callback(data.data)
				} else {
					console.log("查询码表失败!");
					callback('')
				}
			},
			function() {
				console.log("查询码表失败!");
				callback('')
			},'0'
		);
	}
	
	// 码值转换
	/**
	 * @param {Object} dictCode 要转换的码值
	 * @param {Object} dictList 码表数组
	 */
	NeiosCommon.prototype.dictTransform = function(dictList,dictCode){
		for (item of dictList) {
			if (item.itemValue == dictCode) {
				return item.itemText
			}
		}
	}
	
	// 时间格式转换
	/**
	 * @param {Object} myDate date转string
	 * @param {Object} type:sec精确到秒，min精确到分钟，hour精确到小时，day精确到日，month精确到月，year精确到年
	 */
	NeiosCommon.prototype.transTime = function(myDate,type) {
		var realYear = myDate.getFullYear();
		var myMonth = myDate.getMonth() + 1;
		var realMonth = myMonth;
		var myDay = myDate.getDate();
		var realDay = myDay;
		var myHour = myDate.getHours();
		var realHours = myHour;
		var myMinute = myDate.getMinutes();
		var realMinute = myMinute;
		var mySecond = myDate.getSeconds();
		var realSecond = mySecond;
		if (myMonth < 10) {
			realMonth = "0" + myMonth;
		}
		if (myDay < 10) {
			realDay = "0" + myDay;
		}
		if (myMinute < 10) {
			realMinute = "0" + myMinute;
		}
		if (myHour < 10) {
			realHours = "0" + myHour;
		}
		if (mySecond < 10) {
			realSecond = "0" + mySecond;
		}
		var realDate = realYear + '-' + realMonth + '-' + realDay + ' ' + realHours + ':' + realMinute + ':' + realSecond;
		if(type == "sec"){
			realDate = realYear + '-' + realMonth + '-' + realDay + ' ' + realHours + ':' + realMinute + ':' + realSecond;
		}else if(type == "min"){
			realDate = realYear + '-' + realMonth + '-' + realDay + ' ' + realHours + ':' + realMinute;
		}else if(type == "hour"){
			realDate = realYear + '-' + realMonth + '-' + realDay + ' ' + realHours;
		}else if(type == "day"){
			realDate = realYear + '-' + realMonth + '-' + realDay;
		}else if(type == "month"){
			realDate = realYear + '-' + realMonth;
		}else if(type == "year"){
			realDate = realYear;
		}
		return realDate;
	}
	
	// 获取登陆人信息
	NeiosCommon.prototype.getUserInfo = function(callback){
		let param = { 
			 userId:localStorage.getItem("neiosCode")
			 //userId:'P227433'
			 //userId:'P234903'//
			 //userId:'P108383'//场站
			 //userId:'P108838'//分公司
			 // userId:'P626517',//总部
			 //userId:'P620146',//总部
			 //userId:'P187792'
			 //userId:'P108838'
			// userId:'P627351'
			// userId:'P168908'
			// userId:'P625980'
		}
		mui.neiosRequst.httpRequst('/app/common/getUserInfo', param,
			function(data) {
				if (data.code == 0) {
					localStorage.setItem('neiosUser',JSON.stringify(data.data))
					console.log('cccccccc')
					console.log(JSON.stringify(data.data))
					callback('0')
				} else {
					mui.toast('获取用户信息失败！')
					callback('1')
				}
				// "companyCode": 分公司编码,
				// "stationCode": 场站编码,
				// "companyName": 分公司名称,
				// "roles": 角色编码,
				// "userName": 用户ID+姓名,
				// "companyNewCode": 新能源分公司编码,
				// "userId": "用户ID,
				// "orgType": 类别：总部0/分公司1/场站/部门2,
				// "stationNewCode": 新能源场站编码,
				// "name": 用户姓名",
				// "stationName": 场站名称,
				// "secondPerson": 是否二把手,
				// "firstPerson": 是否一把手
			},
			function() {
				mui.toast('获取用户信息失败！') 
				callback('1')
			}
		);
	}
	
	
	//调用文件上传接口
	/**
	 * @param {String} url 接口路径
	 * @param {Object} params接口参数
	 * @param {function} success上传成功回调
	 * @param {String} filePath 文件路径
	 * @param {String} key文件参数名 例如 file
	 */
	NeiosCommon.prototype.doUploads = function(url,filePath,key,params,success){
		mui.upLoadHelper.doUpLoads(url,filePath,key,params,success);
	}
	
	NeiosCommon.prototype.downLoadFile = function(param,success,error){
		mui.upLoadHelper.downLoadFile(param,function(ret){
			success(ret)
		},function(err){
			error(err)
		});
	}
	
	/**
	 * 获取主键UUID
	 */
	NeiosCommon.prototype.getUuidv4 = function(){
		return 'xxyxyyxxyxyyxyyxyyxxxyxyyxyyyxyy'.replace(/[xy]/g, function(c) {
		    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
		    return v.toString(16);
		});
	}
	/**
	 * 本地存储 -- 存储文件统一使用这个方法
	 * @param {String} tabname 表名
	 * @param {String} id id 传 "" 或 null
	 * @param {String} type 业务类型 0其他类型（保护压板，变压器调压等）1 工作台类型
	 * @param {String} process 流程类型  当前数据属于那个流程 当type == 1 时的流程类型（护压板，变压器调压等））
	 * @param {fun} data 需要存储的数据
	 * @param {fun} fun 回调函数
	 */
	NeiosCommon.prototype.doLocalSql = function(tabname,id,type,process,data,fun){
		SQLLITE.localStorage(tabname,id,type,process,data,function(funRet){
			fun(funRet)
		})
	}
	
	/**
	 * 获取本地数据
	 * @param {Object} tabname 表名
	 * @param {fun} success 回调
	 * @param {fun} fail 回调
	 */
	NeiosCommon.prototype.getLocalData = function(tabname,success,fail){
		SQLLITE.getSqlData(tabname,function(ret){
			if(ret.length > 0){
				plus.nativeUI.confirm("本地有尚未提交的数据，是否立即处理?", function(e){
						console.log("Close confirm: "+e.index);
						if(e.index == 0){
								success(ret) 
						}
						if(e.index == 1){
							//删除确认
							mui.confirm("确认删除?",'提示',['取消','确认'],function (e) {
								if(1 == e.index){
									console.log("Close confirm: "+e.index);
									if(e.index == 1){
										SQLLITE.clearDB(tabname,function(retDel){
											console.log("删除："+JSON.stringify(retDel))
										},function(errDel){
											console.log("删除错误："+JSON.stringify(errDel))
										})
									}
									if(e.index == 0){

									}
								}
							},'div')
						}
					},
					{"title":"提示",
						"buttons":["立即处理","立即删除"],
						"verticalAlign":"center"
					}
				); 
			}
		},function(err){
			fail("查询表失败"+JSON.stringify(err))
		})
	}
	
	/**
	 * 清空数据库表
	 * @param {Object} tabname 表名
	 * @param {fun} success 回调
	 * @param {fun} fail 回调
	 */
	NeiosCommon.prototype.clearTab = function(tabname,success,fail){
		SQLLITE.clearDB(tabname,function(ret){
			success(ret)
		},function(err){
			fail(err)
		})
	}
	
	$.neiosCommon = new NeiosCommon();
})(mui);
